﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using DTO;
using DAO;

namespace QLDaiLy
{
    public partial class DanhSachNhanVien : XtraUserControl
    {
        private int MaChucVu;

        public DanhSachNhanVien()
        {
            InitializeComponent();
        }

        public DanhSachNhanVien(int MaChucVu)
        {
            // TODO: Complete member initialization
            InitializeComponent();
            this.MaChucVu = MaChucVu;
            if (MaChucVu == 1)
            {
                gridViewDanhSachNhanVien.Columns["Delete"].Visible = true;
                gridViewDanhSachNhanVien.Columns["CapNhat"].Visible = false;
                gridViewDanhSachNhanVien.Columns["PhanQuyen"].Visible = true;
         
            }
            if (MaChucVu == 2)
            {
                gridViewDanhSachNhanVien.Columns["Delete"].Visible = false;
                gridViewDanhSachNhanVien.Columns["CapNhat"].Visible = false;
                gridViewDanhSachNhanVien.Columns["PhanQuyen"].Visible = false;
            }
            if (MaChucVu == 3)
            {
                gridViewDanhSachNhanVien.Columns["Delete"].Visible = false;
                gridViewDanhSachNhanVien.Columns["CapNhat"].Visible = true;
                gridViewDanhSachNhanVien.Columns["PhanQuyen"].Visible = false;
            }
            if (MaChucVu == 4)
            {

                gridViewDanhSachNhanVien.Columns["Delete"].Visible = false;
                gridViewDanhSachNhanVien.Columns["CapNhat"].Visible = false;
                gridViewDanhSachNhanVien.Columns["PhanQuyen"].Visible = false;
            }
            if (MaChucVu == 5)
            {
                gridViewDanhSachNhanVien.Columns["Delete"].Visible = false;
                gridViewDanhSachNhanVien.Columns["CapNhat"].Visible = false;
                gridViewDanhSachNhanVien.Columns["PhanQuyen"].Visible = false;
            }
        }
        private void LoadDanhDanhSachNhanVien()
        {

            List<NhanVienDTO> list = new List<NhanVienDTO>();
            list = NhanVienDAO.LoadDanhSachNhanVien();
            gridNhanVienControl.DataSource = list;
        }
        private void gridViewDanhSachDaiLy_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
        {
            if (e.Column.Caption == "Cập Nhật")
            {
                e.Value = QLDaiLy.Properties.Resources.updateUser;
            }
            if (e.Column.Caption == "Delete")
            {
                e.Value = QLDaiLy.Properties.Resources.delete;
            }
            if (e.Column.Caption == "Phân Quyền")
            {
                e.Value = QLDaiLy.Properties.Resources.add_user;
            }
        }

        private void DanhSachNhanVien_Load(object sender, EventArgs e)
        {
            LoadDanhDanhSachNhanVien();
        }

        private void repositoryItemPictureCapNhat_Click(object sender, EventArgs e)
        {
            string MaNhanVien = gridViewDanhSachNhanVien.GetRowCellValue(gridViewDanhSachNhanVien.FocusedRowHandle, gridViewDanhSachNhanVien.Columns["MaNhanVien"]).ToString();
            string TenNhanVien = gridViewDanhSachNhanVien.GetRowCellValue(gridViewDanhSachNhanVien.FocusedRowHandle, gridViewDanhSachNhanVien.Columns["TenNhanVien"]).ToString();
            string DienThoai = gridViewDanhSachNhanVien.GetRowCellValue(gridViewDanhSachNhanVien.FocusedRowHandle, gridViewDanhSachNhanVien.Columns["DienThoai"]).ToString();
            string DiaChi = gridViewDanhSachNhanVien.GetRowCellValue(gridViewDanhSachNhanVien.FocusedRowHandle, gridViewDanhSachNhanVien.Columns["DiaChi"]).ToString();
            string Email = gridViewDanhSachNhanVien.GetRowCellValue(gridViewDanhSachNhanVien.FocusedRowHandle, gridViewDanhSachNhanVien.Columns["EmailNV"]).ToString();
            TableLayoutPanel tb = (TableLayoutPanel)this.Parent;
            tb.Controls.Remove(tb.GetControlFromPosition(0, 1));
            CapNhatNhanVien frm = new CapNhatNhanVien(MaNhanVien,TenNhanVien,DiaChi,Email,DienThoai);
            tb.Controls.Add(frm, 0, 1);
        }

        private void btnThemNhanVien_Click(object sender, EventArgs e)
        {
            TableLayoutPanel tb = (TableLayoutPanel)this.Parent;
            tb.Controls.Remove(tb.GetControlFromPosition(0, 1));
            TiepNhanNhanVien frm = new TiepNhanNhanVien();
            tb.Controls.Add(frm, 0, 1);
        }

        private void repositoryItemPictureDelete_Click(object sender, EventArgs e)
        {
           // MessageBox.Show("Bạn muốn xoá hay không ?", "Thông báo", MessageBoxButtons.OKCancel);
            DialogResult dr = MessageBox.Show("Bạn có muốn xóa nhân viên này không?", "Thoát chương trình", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
            if (dr == DialogResult.OK)
            {
                NhanVienDTO nv = new NhanVienDTO();
                nv.MaNhanVien = gridViewDanhSachNhanVien.GetRowCellValue(gridViewDanhSachNhanVien.FocusedRowHandle, gridViewDanhSachNhanVien.Columns["MaNhanVien"]).ToString();
                if (NhanVienDAO.deleteNhanVien(nv))
                {
                    // MessageBox.Show("Xoá thành công");
                    LoadDanhDanhSachNhanVien();
                }
                else
                {
                    MessageBox.Show("Xoá thành thất bại");
                }
            }
          
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void repositoryItemPicturePhanQuyen_Click(object sender, EventArgs e)
        {
            string MaNhanVien = gridViewDanhSachNhanVien.GetRowCellValue(gridViewDanhSachNhanVien.FocusedRowHandle, gridViewDanhSachNhanVien.Columns["MaNhanVien"]).ToString();
            TableLayoutPanel tb = (TableLayoutPanel)this.Parent;
            tb.Controls.Remove(tb.GetControlFromPosition(0, 1));
            PhanQuyen frm = new PhanQuyen(MaNhanVien);
            tb.Controls.Add(frm, 0, 1);
        }
    }
}
